IP Телефония с нуля (MikoPBX+Proxmox)

MikoPBX будет идеальным решением если вы собираетесь развернуть IP телефонию. FreePBX или Elastix требует порог вхождения и не столь информативен без опыта эксплуатации.

Заказав настройку MikroTik, вы получите 100% проработанное решение от опытного сетевого инженера.

Познакомился я с MikoPBX на AsterConf’22, где лично убедился, что проще ничего нет. Даже не разбираясь в IP телефонии, можно развернуть АТС и быстро подключить офис, что я в данной статье и сделаю.

Статья без водяных знаков, приветствуется копирование и распространение с сохранением ссылок на продукт MikoPBX и сайт Настройка-Микротик.РФ

Где скачать

https://www.mikopbx.ru/download/ — укажите почту и получите ссылку на скачивание.

Загрузка ISO по https
Закидываем скаченный образ на гипервизор, я использую загрузку через URL
Прогресс загрузки
Загрузка завершена. Образ весит около 350Мб

Как установить

https://wiki.mikopbx.ru/setup — есть всевозможные сценарии установки, но нет моего любимого Proxmox!

Создание VM с ID
Создаем VM с именем и ID
Указание диска и типа OS
Выбираем ISO образ дистрибутива и тип OS
Тип контроллера VirtIO SCSI
Оставляем по умолчанию, Qemu Agent не поддерживается
Подключение диска SCSI
Диск под систему достаточно 1Гб
Подключение второго диска SCSI
Дополнительный диск на 10Гб для хранения данных

Обязательно нужно 2 диска, без второго система не установится.

Количество ядер
2 ядер для малого офиса хватит
Количество ОЗУ
2Гб ОЗУ так же хватит
Настройка сетевой карты
Сеть без Firewall
Создание и запуск VM
Сразу запустим после создания
Процесс запуска VM
Любуемся запуском установщика
Меню настройки MikoPBX
Меняем язык для удобства, нажимая 1-2
Настройка сети MikoPBX
Настраиваем статический IP адрес, нажимая 2-2
 Настройка IP MikoPBX
IP адрес
Настройка маски MikoPBX
Маска 24, она же 255.255.255.0
Настройка шлюза MikoPBX
Шлюз
Настройка DNS MikoPBX
DNS
Установка MikoPBX
Запускаем установку, нажав 8
Выбор диска под систему MikoPBX
Выбираем диск под систему (1Гб) — sda
Подтверждение установки MikoPBX
Соглашаемся и наблюдаем установку
Выбор диска под данные MikoPBX
Выбираем второй диск под данные (10Гб) sdb

Теперь нужно отключить дисковод с дистрибутивом MikoPBX

Отключение CD/DVD установщика
С подключенным образом нужно менять приоритет загрузки, но диск нам более не нужен.
Отключение VM
Останавливаем VM и запускаем заново
Вход в WEB MikoPBX
Переходим по IP адресу и авторизовываемся admin/admin
Смена пароля MikoPBX
И сразу меняем логин и пароль
Удаление настроек MikoPBX
Удаляем дефолтные данные
Смена сертификата SSL MikoPBX
Дополнительно, если к MikoPBX подключаетесь через интернет — принудительный редирект на https и валидный SSL сертификат, чтобы браузер не ругался. Но для этого нужно доменное имя.
IP Телефония с нуля (MikoPBX+Proxmox)
Так же можно получить сертификат с помощью данного модуля при наличии белого IP

Настройка внутренних номеров

Телефония > Сотрудники
Создаем 2 номера для тестов:

Создание номера 201 MikoPBX
201 для тестов на DECT трубке
Создание номера 202 MikoPBX
202 для тестов на Zoiper на Wi-Fi
Создание номера 203 MikoPBX
203 для тестов на Yealink

Настройка Gigaset A510 IP

Настройка Gigaset на MikoPBX
Настройки > Соединения > Выбираем линию
IP Телефония с нуля (MikoPBX+Proxmox)
Указываем номер, пароль и сервер

Настройка Zoiper Android

Настройка Zoiper на MikoPBX
Аналогично указываем номер, пароль и сервер

Настройка Yealink T31

Настройка Yealink на MikoPBX
Настройка не отличается остальных

Настройка Xiaomi

В Xiaomi есть встроенный клиент SIP!

IP Телефония с нуля (MikoPBX+Proxmox)
Настройки вызовов > Расширенные настройки
IP Телефония с нуля (MikoPBX+Proxmox)
Настройки SIP
IP Телефония с нуля (MikoPBX+Proxmox)
Типичные настройки
IP Телефония с нуля (MikoPBX+Proxmox)
Для только исходящих можно выключить «Принимать входящие»

По возможности используйте доменное имя сервера, чтобы в случае смены IP адреса, не перенастраивать устройства.

Список абонентов MikoPBX
Видим, что обе учетные записи в сети
Служебная информация MikoPBX
В настройках сотрудника можно нажать 2 раза Esc, чтобы увидеть служебную информацию.

Для внутренней телефонии без внешней связи АТС готова к работе. Осталось завести внешний номер.

Покупка SIP номера

Самые дешевые номера в Zadarma.com, он же novofon.ru, нам нужен самый дешевый номер 499, который стоит 120руб в месяц. С заказом номера не должно возникнуть проблем. Берем авторизационные данные для SIP, и настраиваем подключение.

Покупка номера SIP Zadarma
Нам нужен сервер, логин и пароль

Настройка SIP транка

Подключение SIP MikoPBX
Маршрутизация > Провайдеры телефонии > Подключить SIP
Настройка SIP транка MikoPBX
Добавляем провайдера с исходящей регистрацией

Исходящая маршрутизация

Настроим звонки на внешние номера

Исходящая маршрутизация
Маршрутизация > Исходящие маршруты
Правило исходящего маршрута
Создаем маршрут на номера начинающиеся с 7 или 8, состоящий из 11 цифр.
История вызовов
Теперь мы можем звонить на внешние номера

Входящая маршрутизация

Чтобы могли позвонить нам, создадим входящий маршрут.

Входящая маршрутизация
Маршрутизация > Входящие маршруты > Добавить новое правило
Правило обработки входящих
Направляем все вызовы на номер 201

Наберем купленный SIP номер с мобильного.

История вызовов
Видим входящий вызов

Очереди вызовов

Если у вас более 1 номера принимают внешние вызовы, то нужно входящие звонки маршрутизировать в «Очередь вызовов».

Телефония > Очереди вызовов

Очередь вызовов
Создаем очередь «Бухгалтерия» и добавляем в нее нужные номера с одновременным распределением вызовов на них
Очередь вызовов
Исправим входящий транк номера на созданную очередь.
История вызовов
Видим по истории кто звонил, куда попал и кто ответил

Автоматическая настройка телефонов

Autoprovisioning так же доступен в MikoPBX, но отдельным модулем. Работает сходу в одной L2 сети, то есть сервер MikoPBX должны находиться в одной адресации. Для других СВОИХ маршрутизируемых локальных сетей нужно настраивать проброс multicast 224.0.1.75 до сети сервера MikoPBX.

Регистрация MikoPBX
Регистрируем MikoPBX для использования модулей
Модуль автоматической настройки
Ставим модуль автоматической настройки IP телефонов
Настройка кода автонастройки телефона
Указываем IP адрес нашей MikoPBX и код регистрации на АТС, например для 204 номера будет *2200101*204
После перезагрузки телефона, он настроится на служебную учетную запись, с которой работает набор кода *2200101*Номер, телефон перезагрузится и настроится на указанный номер.

Чтобы АТС и телефоны отделить в отдельную сеть — нужно настроить DHCP опцию 132, в которой указывается значение Vlan ID, В моем примере это Vlan10, в котором находится АТС и будут находиться телефоны.

/ip dhcp-server option
add code=132 name=option132 value="s'10'"

И применяем эту опцию на DHCP настройках:

Правка опции в MikroTik
Теперь телефон будет сразу проваливаться в Vlan10, где будет видеть MikoPBX

Подключение дополнительной АТС

Размещение всех филиалов на АТС является не лучшей идеей при маленьких каналах, так как 1 активный вызов занимает 80Кбит полосы пропускания в обе стороны. По этому создадим вторую MikoPBX и соединим их SIP транком.

MikoPBX-2 имеет номера 2XX и заведенный внешний номер 499XXXXXXX

MikoPBX-1 имеет номера 3XX и заведенный внешний номер 495XXXXXXX

Настройка SIP транка между MikoPBX

MikoPBX-2 будет ожидать регистрации:

SIP провайдер между своими MikoPBX
Логин создается автоматически

Для работы вызовов с этого транка вне рабочего времени, в Расширенных настройках нужно добавить Дополнительные параметры:

IP Телефония с нуля (MikoPBX+Proxmox)
[endpoint]
set_var=IGNORE_TIME=1

MikoPBX-2 буде регистрироваться:

SIP провайдер между своими MikoPBX
Исходящая регистрация по созданным на MikoPBX-2 данным

Аналогично в расширенные настройки добавляем:

[endpoint]
set_var=IGNORE_TIME=1

Настройка диалплана

Для прямого набора добавочных через транк. На обоих АТС добавим:
Модули > Приложение диалпланов > Добавить новое

Входящие на внутренние номера
Название и описание с программным кодом:
1, GoTo(internal,${FROM_DID},1)
n, Hangup()

Внутренние входящие маршруты

На обоих MikoPBX добавим входящий маршрут созданного транка:

Входящие на внутренние номера
Для входящих с MikoPBX-2. Вместо XXX можно указать конкретный код 1XX
Правила входящих
Для входящих с MikoPBX-1. Вместо XXX можно указать конкретный код 2XX

Внутренние исходящие маршруты

Правила исходящих
На MikoPBX-2 номера 3XX доступны через транк MikoPBX-1
На MikoPBX-2 номера 3XX доступны через транк MikoPBX-1
На MikoPBX-1 номера 2XX доступны через транк MikoPBX-2

Но при звонках друг другу, будет видно вместо CallerID название SIP транка. Для отображения нормального, нужно отключить использования поля fromuser в SIP транке.

Отключение SIP заголовка From
Отключение заголовка From

Firewall

Если сервер доступе напрямую из интернета, то нужно сразу настраивать Firewall.

Список правил Firewall
Сеть и Firewall > Сетевой экран
Правила для локальной сети
Добавляем свои сети в надежные
Правила для остальных сетей
И отключаем все от доступа из интернета

Голосовые файлы

Можно записать для IVR и других сценариев голосовые или музыкальные файлы.

Переходим на сайт https://apihost.ru/voice и озвучиваем с нужными параметрами. Для коммерческого использования лучше заказать студийную запись.

Генератор голоса
Озвучка довольно качественная на не сложных словах и оборотах предложений
Загрузка файла
Телефония > Звуковые файлы > Аудиофайлы > Добавить новый звуковой файл
Загрузка файла
Подгружаем файл
Генератор голоса
Делаем запись для IVR
Загрузка файла
И тоже загружаем
Список голосовых файлов
Список записей

Создание IVR

Телефония > IVR меню > Создать новое IVR меню

Создание IVR
Указываем коды наборов, в какие очереди должен поступать вызов

Маршрутизация > Входящие маршруты

Входящий маршрут в IVR
Исправим маршрут с транка Zadarma на созданный IVR

QoS

Обсудить

В комментариях на Dzen